50 simulated users executing back to back sessions. Warmup or cooldown sessions (that are desaturated) start before or end after the vertical dotted line. Note that narrower event bars mean better performance.

50 simulated users executing back to back sessions. Warmup or cooldown sessions (that are desaturated) start before or end after the vertical dotted line. Note that narrower event bars mean better performance.

272 maintenance sessions ordered from fastest to slowest completion time. The red line marks how long the original recording session took to complete (~29s). Sessions should end around the same time as each other for consistent behavior.

112 maintenance sessions ordered from fastest to slowest completion time. The red line marks how long the original recording session took to complete (~29s). Sessions should end around the same time as each other for consistent behavior.

Each session is represented with a line that cascades downward from each event. As time progresses, the line will move to the right. Consistent behavior will be represented with parallel lines, whereas inconsistent behavior will have lines jut arbitrarily to the right. Warmup and cooldown sessions are included as grey lines.

Each session is represented with a line that cascades downward from each event. As time progresses, the line will move to the right. Consistent behavior will be represented with parallel lines, whereas inconsistent behavior will have lines jut arbitrarily to the right. Warmup and cooldown sessions are included as grey lines.

Total HTTP and supporting files (JS/CSS) latency (load time) is displayed for each session and run combination. Each vertical bar represents the amount of time a session's Shiny application had to wait before it is able to ask the server for information. A resonable amount of time to wait as been set to 5s. Warmup and cooldown sessions are displayed outside the dotted maintenance period lines.

Maximum WebSocket latency (calculation time) is displayed for each session and run combination. The maximum time is shown to convey the longest amount of time a user would have to wait for a response from the Shiny server. Warmup and cooldown sessions are displayed outside the dotted maintenance period lines.

Event plots are arranged by the slowest maximum time within each plot.

slowest maximum times

Event plots are arranged by the slowest minimum time within each plot.

slowest minimum times

Event plots are arranged by the largest difference in the run’s mean event time.

largest mean differences

Label Max time Min time Mean Difference
Event 1) Get: Homepage 12.055 0.021 11.046
Event 19) Updated: cpuPlot 6.187 0.008 5.686
Event 21) Updated: cpuPlot 6.113 0.008 5.179
Event 14) Start Session 6.084 0.004 5.698
Event 27) Updated: cpuPlot 6.054 0.007 4.110
Event 23) Updated: cpuPlot 5.942 0.007 4.812
Event 16) Initialize Session 5.796 0.000 5.412
Event 25) Updated: cpuPlot 5.779 0.008 4.371
Event 33) Updated: cpuPlot 5.515 0.007 4.099
Event 29) Updated: cpuPlot 5.501 0.008 3.777
Event 31) Updated: cpuPlot 4.681 0.007 3.749
Event 17) Updated: cpuPlot 0.907 0.015 0.373
Event 9) Get: ion.rangeSlider.min.js 0.030 0.002 0.001
Event 5) Get: shiny.min.js 0.029 0.002 0.000
Event 4) Get: shiny.css 0.028 0.002 0.001
Event 8) Get: bootstrap.min.css 0.028 0.002 0.002
Event 3) Get: jquery.min.js 0.026 0.002 0.001
Event 7) Get: ion.rangeSlider.skinShiny.css 0.021 0.001 0.001
Event 6) Get: ion.rangeSlider.css 0.011 0.001 0.000
Event 10) Get: strftime-min.js 0.009 0.001 0.000
Event 2) Get: json2-min.js 0.006 0.001 0.000
Event 13) Get: respond.min.js 0.006 0.001 0.000
Event 11) Get: bootstrap.min.js 0.005 0.001 0.000
Event 12) Get: html5shiv.min.js 0.005 0.001 0.000

Event plots are arranged by the largest slope magnitude found when fitting a line to each run.

largest slope magnitudes

Event plots are arranged by the largest intercept magnitude found when fitting a line to each run

largest intercept magnitudes

Event plots are arranged by the largest error magnitude found when fitting a line to each run.

largest error magnitudes

Label Slope Intercept Error
Event 1) Get: Homepage 0.702 -20.734 1.094
Event 23) Updated: cpuPlot 0.456 -15.639 2.007
Event 21) Updated: cpuPlot 0.446 -14.972 1.611
Event 19) Updated: cpuPlot 0.200 -3.388 1.206
Event 16) Initialize Session 0.185 -3.127 0.468
Event 25) Updated: cpuPlot 0.140 -1.830 1.393
Event 33) Updated: cpuPlot 0.105 0.678 1.123
Event 27) Updated: cpuPlot -0.046 6.144 1.994
Event 14) Start Session -0.031 5.966 0.606
Event 29) Updated: cpuPlot -0.031 5.134 1.756
Event 17) Updated: cpuPlot -0.025 1.271 0.486
Event 31) Updated: cpuPlot -0.021 3.981 0.927
Event 8) Get: bootstrap.min.css -0.001 0.062 0.024
Event 9) Get: ion.rangeSlider.min.js 0.001 -0.037 0.027
Event 3) Get: jquery.min.js 0.001 -0.034 0.022
Event 6) Get: ion.rangeSlider.css 0.001 -0.023 0.009
Event 7) Get: ion.rangeSlider.skinShiny.css 0.000 -0.019 0.019
Event 2) Get: json2-min.js -0.000 0.024 0.004
Event 5) Get: shiny.min.js -0.000 0.021 0.025
Event 10) Get: strftime-min.js 0.000 -0.015 0.007
Event 12) Get: html5shiv.min.js 0.000 -0.014 0.003
Event 11) Get: bootstrap.min.js -0.000 0.017 0.002
Event 4) Get: shiny.css 0.000 -0.003 0.024
Event 13) Get: respond.min.js -0.000 0.007 0.004